package com.ucode.model.hrm;

import com.ucode.tool.base.BaseTenantMode;
import com.ucode.tool.base.enums.EducationLevelEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Set;

/**
 * 个人简历
 * @Author: Administrator
 * @Date: 2025/5/16 16:49
 * @Version: 1.0
 */
@Schema(description = "人力资源管理系统 - 个人简历")
@Data
@EqualsAndHashCode
@ToString(callSuper = true)
public class HrmPersonalResume extends BaseTenantMode<Long,Long> {
    /**
     * 用户ID
     */
    private Long memberId;
    /**
     * 头像
     */
    private String avatar;
    /**
     * 姓名
     */
    private String name;
    /**
     * 性别
     * @see com.ucode.tool.base.enums.SexEnum
     */
    private Integer gender;
    /**
     * 电话
     */
    private String phone;
    /**
     * 电子邮箱
     */
    private String email;
    /**
     * 民族
     */
    private String ethnicity;
    /**
     * 出生日期
     */
    private LocalDate birthDate;
    /**
     * 年龄
     */
    private Integer age;
    /**
     * 婚姻状态
     * @see com.ucode.tool.base.enums.MaritalStatusEnum
     */
    private Integer maritalStatus;
    /**
     * 政治面貌
     * @see com.ucode.tool.base.enums.PoliticalStatusTypeEnum
     */
    private Integer politicalStatus;
    /**
     * 学历
     * @see EducationLevelEnum
     */
    private Integer education;
    /**
     * 专业学科
     */
    private String specialty;
    /**
     * 证书
     */
    private String certificate;
    /**
     * 附件路径
     */
    private String fileUrl;
    /**
     * 技能标签
     */
    private Set<String> skillsTags;
    /**
     * 自我介绍
     */
    private String selfIntro;

    //教育经历
    private List<HrmStudyExperience> studyExperiences;
    //工作经历
    private List<HrmWorkExperience> workExperiences;

    /**
     * 应聘状态：1 未投递 2 已投递 3 已邀请 4未面试 5已通过 6 未通过
     */
    private Integer applyStatus;
    /**
     * 应聘备注
     */
    private String applyRemark;
    /**
     * 应聘时间
     */
    private LocalDateTime applyTime;

}
